//
//  NSDate+Formater.h
//  Das
//
//  Created by yingzhi on 14-9-21.
//  Copyright (c) 2014年 yingzhi. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSDate (Formater)


/**
 *  本地日期格式:2013-08-03 12:53:51
 *  可自行指定输入输出格式
 *
 *  @param localDate 待格式化时间
 *
 *  @return 格式化结果
 */

+(NSString *)getFormateLocalDate:(NSString *)localDate;

/**
 *  本地日期格式:2014-09-21 15:38:06
 *
 *  @param localDate 待格式化时间
 *
 *  @return NSDate
 */
+ (NSDate *)getFormateDate:(NSString *)localDate;

/**
 *  输入国际时间
 *
 *  @param utcDate 国际事件
 *
 *  @return 指定格式时间
 */
+(NSString *)getFormateSimpleDate:(NSString *)utcDate;

/**
 *  本地日期格式:2014-09-21 15:38:06
 *
 *  @param timeStamp 待处理的日期
 *
 *  @return 返回具体显示时间格式 比如前天/昨天/今天8:08/半小时前
 */
+(NSString *)getLocalDateFormateUTCDate:(NSString *)utcDate;

+(NSString *)getLocalDateFormateUTCDateWithoutHour:(NSString *)utcDate;

//获取年月日如:19871127.
- (NSString *)getFormatYearMonthDay;

//该日期是该年的第几周
- (int )getWeekOfYear;

//返回day天后的日期(若day为负数,则为|day|天前的日期)
- (NSDate *)dateAfterDay:(int)day;

//month个月后的日期
- (NSDate *)dateafterMonth:(int)month;

//获取日
- (NSUInteger)getDay;

//获取月
- (NSUInteger)getMonth;

//获取年
- (NSUInteger)getYear;

//获取当前小时
- (int )getHour;

//获取分钟
- (int)getMinute;

/**
 *  与传入时间比较
 *
 *  @param date 待比较时间
 *
 *  @return 小时数
 */
+ (int )getHour:(NSDate *)date;

+ (int)getMinute:(NSDate *)date;

//在当前日期前几天
- (NSUInteger)daysAgo;

//午夜时间距今几天
- (NSUInteger)daysAgoAgainstMidnight;

- (NSString *)stringDaysAgo;

- (NSString *)stringDaysAgoAgainstMidnight:(BOOL)flag;

//返回一周的第几天(周末为第一天)
- (NSUInteger)weekday;

//NSString转为NSDate类型的
+ (NSDate *)dateFromString:(NSString *)string;

//按照输入格式格式化日期
+ (NSDate *)dateFromString:(NSString *)string withFormat:(NSString *)format;

+ (NSString *)stringFromDate:(NSDate *)date withFormat:(NSString *)format;

+ (NSString *)stringFromDate:(NSDate *)date;

/*
 * 将时间戳转化为时间
 */
+ (NSDate *)timeStampToData:(NSString *)stamp;


/*
 * 将时间转化为时间戳
 */
+ (NSTimeInterval)dateTotimeStamp:(NSDate *)date;

- (NSString *)stringWithFormat:(NSString *)format;

- (NSString *)string;

- (NSString *)stringWithDateStyle:(NSDateFormatterStyle)dateStyle timeStyle:(NSDateFormatterStyle)timeStyle;

//返回周日的的开始时间
- (NSDate *)beginningOfWeek;

//返回当前天的年月日.
- (NSDate *)beginningOfDay;

//返回该月的第一天
- (NSDate *)beginningOfMonth;

//该月的最后一天
- (NSDate *)endOfMonth;

//返回当前周的周末
- (NSDate *)endOfWeek;

+ (NSString *)dateFormatString;

+ (NSString *)timeFormatString;

+ (NSString *)timestampFormatString;

// preserving for compatibility
+ (NSString *)dbFormatString;

+ (NSString *)intervalSinceNow: (NSString *) theDate;

//返回过了多长时间
+ (NSString *)dsIntervalSinceNow: (NSString *)theDateString;

@end
